package com.example.activitysign.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.activitysign.entity.Activity;
import com.example.activitysign.pages.PageResult;
import com.example.activitysign.pages.PageValidate;
import com.example.activitysign.validate.ActivityCreateValidate;
import com.example.activitysign.validate.ActivitySearchValidate;
import com.example.activitysign.validate.ActivityUpdateValidate;
import com.example.activitysign.vo.activity.ActivityDetailVo;
import com.example.activitysign.vo.activity.ActivityListedVo;

/**
 * 活动服务接口类
 *
 * @author fei
 */
public interface IActivityService extends IService<Activity> {

    /**
     * 活动列表
     *
     * @param pageValidate   分页参数
     * @param searchValidate 搜索参数
     * @return PageResult<ActivityListedVo>
     * @author fei
     */
    PageResult<ActivityListedVo> list(PageValidate pageValidate, ActivitySearchValidate searchValidate);

    /**
     * 活动详情
     *
     * @param id 主键ID
     * @return ActivityDetailVo
     * @author fei
     */
    ActivityDetailVo detail(Long id);

    /**
     * 活动新增
     *
     * @param createValidate 参数
     * @author fei
     */
    void add(ActivityCreateValidate createValidate, Long userId);

    /**
     * 活动编辑
     *
     * @param updateValidate 参数
     * @author fei
     */
    Boolean edit(ActivityUpdateValidate updateValidate, Long userId);

    /**
     * 活动删除
     *
     * @param id 主键ID
     * @author fei
     */
    Boolean del(Long id);

    Boolean deleteAllKey();

}

